In a typical computer system, it is not uncommon for multiple host applications to require access to a single memory device. Typically, memory accesses as well as memory access control functions are performed in software. This provides for relatively slow access to the memory device, and requires coordination between the various host applications.